package com.ctshk.rpc.tour.dto.schedule;

import com.ctshk.rpc.tour.req.Passenger;
import com.ctshk.rpc.tour.req.SeriesTripInfoChangeRuleReq;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalTime;
import java.util.List;

/**
 * @author Lenovo
 */
@Data
@ApiModel(value="SeriesTripScheduleTeamRuleReq对象", description="团期资料--团队规则")
public class SeriesTripScheduleTeamRuleDTO implements Serializable {

    @ApiModelProperty(value = "id")
    private Long id;

    @ApiModelProperty(value = "所属行程")
    private Long tripId;

    @ApiModelProperty(value = "所属行程")
    private Long scheduleId;

    @ApiModelProperty(value = "最大成团人数")
    private Integer maxPeople;

    @ApiModelProperty(value = "是否允许追位 （0 是 1否）")
    private Integer enableAdditionalPosition;

    @ApiModelProperty(value = "最小成团人数")
    private Integer minPeople;

    @ApiModelProperty(value = "是否自动成团（0 是 1否）")
    private Integer enableAutoGroup;

    @ApiModelProperty(value = "旅客类型")
    private List<Passenger> passenger;

    @ApiModelProperty(value = "是否允许留位（0 是 1否）")
    private Integer allowReservedSeats;

    @ApiModelProperty(value = "允许留位人数")
    private Integer reservedSeatsNum;

    @ApiModelProperty(value = "清位时限时间")
    private String clearSeatsTime;

    @ApiModelProperty(value = "清位时限单位（1：分钟 2：小时）")
    private Integer clearSeatsUnit;

    @ApiModelProperty(value = "导游领队要求")
    private String guideRequirement;

    @ApiModelProperty(value = "锁客天数")
    private Integer lockTouristDays;

    @ApiModelProperty(value = "停售天数")
    private Integer stopSaleDays;

    @ApiModelProperty(value = "停售小时")
    private Integer stopSaleHours;

    @ApiModelProperty(value = "徽章颜色主数据ID")
    private Long badgeColorId;

    @ApiModelProperty(value = "徽章颜色")
    private String badgeColor;

    @ApiModelProperty(value = "预设定金")
    private BigDecimal minDeposit;

    @ApiModelProperty(value = "交余数天数")
    private Integer deliveryDays;

    @ApiModelProperty(value = "随团物品主数据ID")
    private Long itemId;

    @ApiModelProperty(value = "随团物品")
    private String item;

    @ApiModelProperty(value = "预报天数")
    private Integer advanceSignDays;

    @ApiModelProperty(value = "确报天数")
    private Integer actualSignDays;

    @ApiModelProperty(value = "是否茶会（0：设茶会 1：不设茶会）")
    private Integer hasTeaParty;

    @ApiModelProperty(value = "负责人ID")
    private Long chargePersonId;

    @ApiModelProperty(value = "负责人员工号")
    private String chargePersonNumber;

    @ApiModelProperty(value = "负责人姓名")
    private String chargePersonName;

    @ApiModelProperty(value = "OP的ID")
    private Long opId;

    @ApiModelProperty(value = "OP的员工号")
    private String opNumber;

    @ApiModelProperty(value = "OP姓名")
    private String opName;

    @ApiModelProperty(value = "茶会地点主数据ID")
    private Long teaPartyLocId;

    @ApiModelProperty(value = "茶会日期")
    private LocalDate teaPartyDate;

    @ApiModelProperty(value = "茶会时间")
    private LocalTime teaPartyTime;

    @ApiModelProperty(value = "茶会备注")
    private String teaPartyRemark;

    @ApiModelProperty(value = "是否需要旅游小费（0：需要 1：不需要）")
    private Integer needTripConsumption;

    @ApiModelProperty(value = "小费主数据ID")
    private Long consumptionId;

    @ApiModelProperty(value = "退团扣费规则ID")
    private Long deductionRulesId;

    @ApiModelProperty(value = "退团扣费规则名称")
    private String deductionRulesName;

    @ApiModelProperty(value = "不成团规则ID")
    private Long notGroupRulesId;

    @ApiModelProperty(value = "不成团规则名称")
    private String notGroupRulesName;

    @ApiModelProperty(value = "住房类型主数据ID")
    private Long housingTypeId;

    @ApiModelProperty(value = "住房类型")
    private String housingType;

    @ApiModelProperty(value = "床数")
    private Integer bedNum;

    @ApiModelProperty(value = "占床数")
    private Integer occupyBedNum;

    @ApiModelProperty(value = "不占床数")
    private Integer notOccupyBedNum;

    @ApiModelProperty(value = "旅客资料收费规则")
    private List<SeriesTripInfoChangeRuleReq> changeRuleList;


}
